"""
python的6中数据类型已经看了三种，数字型，布尔型，字符型
现在来看list类型
list类型->集合 类似于java中的list接口 有序可重复特点
"""

"""
list类型->java的list接口 arrayList和vector
    复习:arrayList和vector，linkedList区别
        ArrayList:底层的数据类型是的数组。特点是支持线程异步，扩容时扩容增长为当前数组元素的50%
        vector：底层实现也是数组。特点是线程安全，不支持异步,扩容时增长长度是当前长度的100%
        linkedList：底层实现是数组+链表实现。适合动态假如元素和删除。不仅可以实现添加到头尾，还能添加到指定的位置
            原理双向链表的数据接口每个元素都能记录链接自己的上下两个元素，所以可以加入到指定位置
python中list数据结构
    listDemo=[元素，...,元素]->注意和java不同 java中list集合用大括号 python用中括号
    集合获取元素：
        获取指定下标的元素(注意数组越界异常)-可以使用负数来获取元素，这是java没有的
        遍历所有的元素
    集合增添元素:append方法和insert方法
        append的方法-只能添加元素到末尾->类似与java的add(元素)方法
        insert方法-可以添加元素到指定的下标位置->insert(下标，"值")->类似java(index,Object)方法
    删除集合元素:
        pop方法->删除末尾的元素并返回被删除的元素
        pop(index)->删除指定位置的元素并返回被删除的元素
        remove(元素)->删除指定的元素，如果有重复删除第一个
    替换集合元素:
        list[index]=Object->直接将集合下标赋值，就能替换元素
    排序集合元素:
        sort->类似java的sort方法
            # 用来对列表中的元素进行排序，默认是升序排列
            # 如果需要降序排列，则需要传递一个reverse=True作为参数
"""
list_demo=["张三",123,None,"李四"]
"""
获取集合长度
"""
print("list_demo的长度=",len(list_demo))
print("list_demo=",list_demo)
"""
获取集合元素-指定下标，下表为负数，循环遍历
"""
print("获取list下标为0的元素=",list_demo[0]) # 注意数组越界异常 和java一样不存在的下标获取不到数据
print("获取list下标为-1的元素=",list_demo[-1])# -1就是末尾最后一个 -2就是倒数第二个的下标，当然也会有数组越界的情况
# 使用for循环写python的list遍历展示 第一种写法类似于java的 for(int i=0;i<list_demo.size;i++)
for index in range(len(list_demo)):
    print("当前下标",index,"当前下表对应元素",list_demo[index])
# 增强for循环 直接遍历元素->类似于java写法for(String index:list_demo)
index=0;
for list in list_demo:
    print("当前元素",list,"位于下标",index)
    index+=1
#
"""
新增集合元素-append方法和insert方法
"""
list_demo.append("王五")
print(list_demo)
list_demo.insert(2,"赵六")
print(list_demo)
"""
移除元素-pop方法
"""
list_demo.pop()
print(list_demo)
list_demo.pop(2)
print(list_demo)
"""
修改元素-元素赋值
"""
list_demo[3]="李白"
print(list_demo)
"""
集合的元素没有数据类型要求 空值 数字型 字符串型 集合型都可以添加到list集合中
集合可以嵌套使用，一个集合可以存入另一个集合中作元素(java中常见),想要快速遍历得到元素中集合的值
    list[第一个下标][元素集合对应下标]->有带你类似与js遍历。js也能这样快速拿到对象
"""
list_obj=["杜甫","白居易"]
list_demo.insert(2,list_obj)
print(list_demo)
print("快速拿到集合嵌套的元素=",list_demo[2][1])

"""
排序元素-sort,reverse反转 由大到小由小到大排序
"""
my_list = [10,1,20,3,4,5,0,-2]
my_list.sort(reverse=False)
print(my_list)
"""
清空元素-clear
"""
list_demo.clear()